# This file was generated and then heavily edited by hand. Be careful not
# to rollback, undo, or overwrite any of the manual changes.

# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])

##############################################################################
# Common
##############################################################################
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")

_PROTO_SUBPACKAGE_DEPS = [
    "//google/cloud/aiplatform/v1beta1/schema:schema_proto",
    "//google/cloud/aiplatform/v1beta1/schema/predict/instance:instance_proto",
    "//google/cloud/aiplatform/v1beta1/schema/predict/params:params_proto",
    "//google/cloud/aiplatform/v1beta1/schema/predict/prediction:prediction_proto",
    "//google/cloud/aiplatform/v1beta1/schema/trainingjob/definition:definition_proto",
]

proto_library(
    name = "aiplatform_proto",
    srcs = [
        "accelerator_type.proto",
        "annotation.proto",
        "annotation_spec.proto",
        "artifact.proto",
        "batch_prediction_job.proto",
        "completion_stats.proto",
        "context.proto",
        "custom_job.proto",
        "data_item.proto",
        "data_labeling_job.proto",
        "dataset.proto",
        "dataset_service.proto",
        "deployed_index_ref.proto",
        "deployed_model_ref.proto",
        "encryption_spec.proto",
        "endpoint.proto",
        "endpoint_service.proto",
        "entity_type.proto",
        "env_var.proto",
        "event.proto",
        "execution.proto",
        "explanation.proto",
        "explanation_metadata.proto",
        "feature.proto",
        "feature_monitoring_stats.proto",
        "feature_selector.proto",
        "featurestore.proto",
        "featurestore_monitoring.proto",
        "featurestore_online_service.proto",
        "featurestore_service.proto",
        "hyperparameter_tuning_job.proto",
        "index.proto",
        "index_endpoint.proto",
        "index_endpoint_service.proto",
        "index_service.proto",
        "io.proto",
        "job_service.proto",
        "job_state.proto",
        "lineage_subgraph.proto",
        "machine_resources.proto",
        "manual_batch_tuning_parameters.proto",
        "metadata_schema.proto",
        "metadata_service.proto",
        "metadata_store.proto",
        "migratable_resource.proto",
        "migration_service.proto",
        "model.proto",
        "model_deployment_monitoring_job.proto",
        "model_evaluation.proto",
        "model_evaluation_slice.proto",
        "model_monitoring.proto",
        "model_service.proto",
        "operation.proto",
        "pipeline_job.proto",
        "pipeline_service.proto",
        "pipeline_state.proto",
        "prediction_service.proto",
        "specialist_pool.proto",
        "specialist_pool_service.proto",
        "study.proto",
        "tensorboard.proto",
        "tensorboard_data.proto",
        "tensorboard_experiment.proto",
        "tensorboard_run.proto",
        "tensorboard_service.proto",
        "tensorboard_time_series.proto",
        "training_pipeline.proto",
        "types.proto",
        "user_action_reference.proto",
        "value.proto",
        "vizier_service.proto",
    ],
    deps = [
        "//google/api:annotations_proto",
        "//google/api:client_proto",
        "//google/api:field_behavior_proto",
        "//google/api:resource_proto",
        "//google/longrunning:operations_proto",
        "//google/rpc:status_proto",
        "//google/type:money_proto",
        "@com_google_protobuf//:duration_proto",
        "@com_google_protobuf//:empty_proto",
        "@com_google_protobuf//:field_mask_proto",
        "@com_google_protobuf//:struct_proto",
        "@com_google_protobuf//:timestamp_proto",
        "@com_google_protobuf//:wrappers_proto",
    ] + _PROTO_SUBPACKAGE_DEPS,
)

proto_library_with_info(
    name = "aiplatform_proto_with_info",
    deps = [
        ":aiplatform_proto",
        "//google/cloud:common_resources_proto",
    ] + _PROTO_SUBPACKAGE_DEPS,
)

##############################################################################
# Java
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "java_gapic_assembly_gradle_pkg",
    "java_gapic_library",
    "java_gapic_test",
    "java_grpc_library",
    "java_proto_library",
)

_JAVA_PROTO_SUBPACKAGE_DEPS = [
    "//google/cloud/aiplatform/v1beta1/schema/predict/instance:instance_java_proto",
    "//google/cloud/aiplatform/v1beta1/schema/predict/params:params_java_proto",
    "//google/cloud/aiplatform/v1beta1/schema/predict/prediction:prediction_java_proto",
    "//google/cloud/aiplatform/v1beta1/schema/trainingjob/definition:definition_java_proto",
]

_JAVA_GRPC_SUBPACKAGE_DEPS = [
    "//google/cloud/aiplatform/v1beta1/schema/predict/instance:instance_java_grpc",
    "//google/cloud/aiplatform/v1beta1/schema/predict/params:params_java_grpc",
    "//google/cloud/aiplatform/v1beta1/schema/predict/prediction:prediction_java_grpc",
    "//google/cloud/aiplatform/v1beta1/schema/trainingjob/definition:definition_java_grpc",
]

java_proto_library(
    name = "aiplatform_java_proto",
    deps = [":aiplatform_proto"],
)

java_grpc_library(
    name = "aiplatform_java_grpc",
    srcs = [":aiplatform_proto"],
    deps = [":aiplatform_java_proto"] + _JAVA_PROTO_SUBPACKAGE_DEPS,
)

java_gapic_library(
    name = "aiplatform_java_gapic",
    srcs = [":aiplatform_proto_with_info"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
    test_deps = [
        ":aiplatform_java_grpc",
    ] + _JAVA_GRPC_SUBPACKAGE_DEPS,
    deps = [
        ":aiplatform_java_proto",
    ] + _JAVA_PROTO_SUBPACKAGE_DEPS,
)

java_gapic_test(
    name = "aiplatform_java_gapic_test_suite",
    test_classes = [
        "com.google.cloud.aiplatform.v1beta1.DatasetServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.EndpointServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.JobServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.MigrationServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.ModelServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.PipelineServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.PredictionServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClientTest",
        "com.google.cloud.aiplatform.v1beta1.VizierServiceClientTest",
    ],
    runtime_deps = [":aiplatform_java_gapic_test"],
)

# Open Source Packages
java_gapic_assembly_gradle_pkg(
    name = "google-cloud-aiplatform-v1beta1-java",
    deps = [
        ":aiplatform_java_gapic",
        ":aiplatform_java_grpc",
        ":aiplatform_java_proto",
        ":aiplatform_proto",
    ] + _JAVA_PROTO_SUBPACKAGE_DEPS + _PROTO_SUBPACKAGE_DEPS + _JAVA_GRPC_SUBPACKAGE_DEPS,
)

##############################################################################
# Go
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "go_gapic_assembly_pkg",
    "go_gapic_library",
    "go_proto_library",
    "go_test",
)

go_proto_library(
    name = "aiplatform_go_proto",
    compilers = ["@io_bazel_rules_go//proto:go_grpc"],
    importpath = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1",
    protos = [":aiplatform_proto"],
    deps = [
        "//google/api:annotations_go_proto",
        "//google/longrunning:longrunning_go_proto",
        "//google/rpc:status_go_proto",
        "//google/type:money_go_proto",
    ],
)

go_gapic_library(
    name = "aiplatform_go_gapic",
    srcs = [":aiplatform_proto_with_info"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
    importpath = "cloud.google.com/go/aiplatform/apiv1beta1;aiplatform",
    service_yaml = "aiplatform_v1beta1.yaml",
    deps = [
        ":aiplatform_go_proto",
        "//google/longrunning:longrunning_go_proto",
        "@com_google_cloud_go//longrunning:go_default_library",
        "@com_google_cloud_go//longrunning/autogen:go_default_library",
        "@io_bazel_rules_go//proto/wkt:duration_go_proto",
        "@io_bazel_rules_go//proto/wkt:struct_go_proto",
    ],
)

go_test(
    name = "aiplatform_go_gapic_test",
    srcs = [":aiplatform_go_gapic_srcjar_test"],
    embed = [":aiplatform_go_gapic"],
    importpath = "cloud.google.com/go/aiplatform/apiv1beta1",
)

# Open Source Packages
go_gapic_assembly_pkg(
    name = "gapi-cloud-aiplatform-v1beta1-go",
    deps = [
        ":aiplatform_go_gapic",
        ":aiplatform_go_gapic_srcjar-test.srcjar",
        ":aiplatform_go_proto",
    ],
)

##############################################################################
# Python
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "py_gapic_assembly_pkg",
    "py_gapic_library",
)

_PY_GAPIC_SUBPACKAGE_DEPS = [
    "//google/cloud/aiplatform/v1beta1/schema/predict/instance:instance_py_gapic",
    "//google/cloud/aiplatform/v1beta1/schema/predict/params:params_py_gapic",
    "//google/cloud/aiplatform/v1beta1/schema/predict/prediction:prediction_py_gapic",
    "//google/cloud/aiplatform/v1beta1/schema/trainingjob/definition:definition_py_gapic",
]

py_gapic_library(
    name = "aiplatform_py_gapic",
    srcs = [":aiplatform_proto"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
)

# Open Source Packages
py_gapic_assembly_pkg(
    name = "aiplatform-v1beta1-py",
    deps = [
        ":aiplatform_py_gapic",
    ] + _PROTO_SUBPACKAGE_DEPS + _PY_GAPIC_SUBPACKAGE_DEPS,
)

##############################################################################
# PHP
# DO NOT OVERRIDE this PHP microgenerator section with autogenerated rules.
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    php_gapic_assembly_pkg = "php_gapic_assembly_pkg2",
    php_gapic_library = "php_gapic_library2",
    php_grpc_library = "php_grpc_library2",
    php_proto_library = "php_proto_library2",
)

php_proto_library(
    name = "aiplatform_php_proto",
    deps = [":aiplatform_proto"],
)

php_grpc_library(
    name = "aiplatform_php_grpc",
    srcs = [":aiplatform_proto"],
    deps = [":aiplatform_php_proto"],
)

php_gapic_library(
    name = "aiplatform_php_gapic",
    srcs = [":aiplatform_proto_with_info"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
    deps = [
        ":aiplatform_php_grpc",
        ":aiplatform_php_proto",
    ],
)

# Open Source Packages
php_gapic_assembly_pkg(
    name = "google-cloud-aiplatform-v1beta1-php",
    deps = [
        ":aiplatform_php_gapic",
        ":aiplatform_php_grpc",
        ":aiplatform_php_proto",
    ],
)

##############################################################################
# Node.js
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "nodejs_gapic_assembly_pkg",
    "nodejs_gapic_library",
)

nodejs_gapic_library(
    name = "aiplatform_nodejs_gapic",
    package_name = "@google-cloud/aiplatform",
    src = ":aiplatform_proto_with_info",
    extra_protoc_parameters = ["metadata"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
    package = "google.cloud.aiplatform.v1beta1",
    service_yaml = "aiplatform_v1beta1.yaml",
    deps = [],
)

nodejs_gapic_assembly_pkg(
    name = "aiplatform-v1beta1-nodejs",
    deps = [
        ":aiplatform_nodejs_gapic",
        ":aiplatform_proto",
    ] + _PROTO_SUBPACKAGE_DEPS,
)

##############################################################################
# Ruby
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "ruby_cloud_gapic_library",
    "ruby_gapic_assembly_pkg",
    "ruby_grpc_library",
    "ruby_proto_library",
)

ruby_proto_library(
    name = "aiplatform_ruby_proto",
    deps = [":aiplatform_proto"],
)

ruby_grpc_library(
    name = "aiplatform_ruby_grpc",
    srcs = [":aiplatform_proto"],
    deps = [":aiplatform_ruby_proto"],
)

ruby_cloud_gapic_library(
    name = "aiplatform_ruby_gapic",
    srcs = [":aiplatform_proto_with_info"],
    extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-aiplatform-v1beta1"],
    grpc_service_config = "aiplatform_grpc_service_config.json",
    deps = [
        ":aiplatform_ruby_grpc",
        ":aiplatform_ruby_proto",
    ],
)

# Open Source Packages
ruby_gapic_assembly_pkg(
    name = "google-cloud-aiplatform-v1beta1-ruby",
    deps = [
        ":aiplatform_ruby_gapic",
        ":aiplatform_ruby_grpc",
        ":aiplatform_ruby_proto",
    ],
)

##############################################################################
# C#
##############################################################################
load(
    "@com_google_googleapis_imports//:imports.bzl",
    "csharp_gapic_assembly_pkg",
    "csharp_gapic_library",
    "csharp_grpc_library",
    "csharp_proto_library",
)

csharp_proto_library(
    name = "aiplatform_csharp_proto",
    deps = [":aiplatform_proto"],
)

csharp_grpc_library(
    name = "aiplatform_csharp_grpc",
    srcs = [":aiplatform_proto"],
    deps = [":aiplatform_csharp_proto"],
)


################################
# Keep C# targets commented out through the regeneration, as C# gen has an issue
# with the aiplatform v1beta1 protos
#
# csharp_gapic_library(
#     name = "aiplatform_csharp_gapic",
#     srcs = [":aiplatform_proto_with_info"],
#     common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
#     grpc_service_config = "aiplatform_grpc_service_config.json",
#     deps = [
#         ":aiplatform_csharp_grpc",
#         ":aiplatform_csharp_proto",
#     ],
# )

# Open Source Packages
# csharp_gapic_assembly_pkg(
#     name = "google-cloud-aiplatform-v1beta1-csharp",
#     deps = [
#         ":aiplatform_csharp_gapic",
#         ":aiplatform_csharp_grpc",
#         ":aiplatform_csharp_proto",
#     ],
# )
################################

##############################################################################
# C++
##############################################################################
# Put your C++ rules here
